package edu.uoc.vmerinom.tfc.domain;

// Generated 21-mar-2012 12:50:22 by Hibernate Tools 3.4.0.CR1

import static javax.persistence.GenerationType.IDENTITY;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;

/**
 * Usuario generated by hbm2java
 */
@Entity
@Table(name = "usuarios", uniqueConstraints = { @UniqueConstraint(columnNames = "user"), @UniqueConstraint(columnNames = "dni") })
public class Usuario implements java.io.Serializable {
	/** Default Serial Version ID */
	private static final long serialVersionUID = 1L;

	private Integer id;
	private Perfil perfil;
	private Date creado;
	private Date modificado;
	private Date alta;
	private Date baja;
	private String user;
	private String pass;
	private String dni;
	private String nombre;
	private String primerApellido;
	private String segundoApellido;
	private String localidad;
	private String provincia;
	private String pais;
	private String domicilio;
	private String cp;
	private String movil;
	private String fijo;
	private String email;
	private String web;
	private String facebook;
	private String twitter;
	private Date nacimiento;
	private String sexo;
	private List<Asistente> asistentes = new ArrayList<Asistente>(0);
	private List<Componente> componentes = new ArrayList<Componente>(0);

	public Usuario() {
	}

	public Usuario(Perfil perfil, Date creado, Date modificado, Date alta, String user, String pass, String dni, String nombre, String primerApellido) {
		this.perfil = perfil;
		this.creado = creado;
		this.modificado = modificado;
		this.alta = alta;
		this.user = user;
		this.pass = pass;
		this.dni = dni;
		this.nombre = nombre;
		this.primerApellido = primerApellido;
	}

	public Usuario(Perfil perfil, Date creado, Date modificado, Date alta, Date baja, String user, String pass, String dni, String nombre,
			String primerApellido, String segundoApellido, String localidad, String provincia, String pais, String domicilio, String cp, String movil,
			String fijo, String email, String web, String facebook, String twitter, Date nacimiento, String sexo, List<Asistente> asistentes,
			List<Componente> componentes) {
		this.perfil = perfil;
		this.creado = creado;
		this.modificado = modificado;
		this.alta = alta;
		this.baja = baja;
		this.user = user;
		this.pass = pass;
		this.dni = dni;
		this.nombre = nombre;
		this.primerApellido = primerApellido;
		this.segundoApellido = segundoApellido;
		this.localidad = localidad;
		this.provincia = provincia;
		this.pais = pais;
		this.domicilio = domicilio;
		this.cp = cp;
		this.movil = movil;
		this.fijo = fijo;
		this.email = email;
		this.web = web;
		this.facebook = facebook;
		this.twitter = twitter;
		this.nacimiento = nacimiento;
		this.sexo = sexo;
		this.asistentes = asistentes;
		this.componentes = componentes;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "id", unique = true, nullable = false)
	public Integer getId() {
		return this.id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "perfil", nullable = false)
	public Perfil getPerfil() {
		return this.perfil;
	}

	public void setPerfil(Perfil perfil) {
		this.perfil = perfil;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "creado", nullable = false, length = 19)
	public Date getCreado() {
		return this.creado;
	}

	public void setCreado(Date creado) {
		this.creado = creado;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "modificado", nullable = false, length = 19)
	public Date getModificado() {
		return this.modificado;
	}

	public void setModificado(Date modificado) {
		this.modificado = modificado;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "alta", nullable = false, length = 19)
	public Date getAlta() {
		return this.alta;
	}

	public void setAlta(Date alta) {
		this.alta = alta;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "baja", length = 19)
	public Date getBaja() {
		return this.baja;
	}

	public void setBaja(Date baja) {
		this.baja = baja;
	}

	@Column(name = "user", unique = true, nullable = false, length = 100)
	public String getUser() {
		return this.user;
	}

	public void setUser(String user) {
		this.user = user;
	}

	@Column(name = "pass", nullable = false, length = 50)
	public String getPass() {
		return this.pass;
	}

	public void setPass(String pass) {
		this.pass = pass;
	}

	@Column(name = "dni", unique = true, nullable = false, length = 11)
	public String getDni() {
		return this.dni;
	}

	public void setDni(String dni) {
		this.dni = dni;
	}

	@Column(name = "nombre", nullable = false, length = 100)
	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	@Column(name = "primer_apellido", nullable = false, length = 100)
	public String getPrimerApellido() {
		return this.primerApellido;
	}

	public void setPrimerApellido(String primerApellido) {
		this.primerApellido = primerApellido;
	}

	@Column(name = "segundo_apellido", length = 100)
	public String getSegundoApellido() {
		return this.segundoApellido;
	}

	public void setSegundoApellido(String segundoApellido) {
		this.segundoApellido = segundoApellido;
	}

	@Column(name = "localidad", length = 100)
	public String getLocalidad() {
		return this.localidad;
	}

	public void setLocalidad(String localidad) {
		this.localidad = localidad;
	}

	@Column(name = "provincia", length = 100)
	public String getProvincia() {
		return this.provincia;
	}

	public void setProvincia(String provincia) {
		this.provincia = provincia;
	}

	@Column(name = "pais", length = 100)
	public String getPais() {
		return this.pais;
	}

	public void setPais(String pais) {
		this.pais = pais;
	}

	@Column(name = "domicilio", length = 150)
	public String getDomicilio() {
		return this.domicilio;
	}

	public void setDomicilio(String domicilio) {
		this.domicilio = domicilio;
	}

	@Column(name = "cp", length = 5)
	public String getCp() {
		return this.cp;
	}

	public void setCp(String cp) {
		this.cp = cp;
	}

	@Column(name = "movil", length = 50)
	public String getMovil() {
		return this.movil;
	}

	public void setMovil(String movil) {
		this.movil = movil;
	}

	@Column(name = "fijo", length = 50)
	public String getFijo() {
		return this.fijo;
	}

	public void setFijo(String fijo) {
		this.fijo = fijo;
	}

	@Column(name = "email", length = 100)
	public String getEmail() {
		return this.email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	@Column(name = "web", length = 100)
	public String getWeb() {
		return this.web;
	}

	public void setWeb(String web) {
		this.web = web;
	}

	@Column(name = "facebook", length = 150)
	public String getFacebook() {
		return this.facebook;
	}

	public void setFacebook(String facebook) {
		this.facebook = facebook;
	}

	@Column(name = "twitter", length = 150)
	public String getTwitter() {
		return this.twitter;
	}

	public void setTwitter(String twitter) {
		this.twitter = twitter;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "nacimiento", length = 19)
	public Date getNacimiento() {
		return this.nacimiento;
	}

	public void setNacimiento(Date nacimiento) {
		this.nacimiento = nacimiento;
	}

	@Column(name = "sexo", length = 10)
	public String getSexo() {
		return this.sexo;
	}

	public void setSexo(String sexo) {
		this.sexo = sexo;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "usuario")
	public List<Asistente> getAsistentes() {
		return this.asistentes;
	}

	public void setAsistentes(List<Asistente> asistentes) {
		this.asistentes = asistentes;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "usuario")
	public List<Componente> getComponentes() {
		return this.componentes;
	}

	public void setComponentes(List<Componente> componentes) {
		this.componentes = componentes;
	}

}
